/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package nexus.adec;

import control.UserBean;
import java.util.ArrayList;
import javax.faces.context.FacesContext;
import javax.faces.el.VariableResolver;
import javax.faces.event.ActionEvent;
import javax.swing.JOptionPane;

/**
 *
 * @author juampi
 */
public class FiltroMateria {
    private String codigoDocente;
    private String codigoCarrera;
    private String codigoMateria;
    private String nombreMateria;
    private String codigoEspacio;
    private boolean mostrarGrupos;
    private ArrayList<FiltroGrupo> grupos;

    public FiltroMateria(String codigoDocente, String codigoCarrera, String codigoMateria,String nombreMateria,String codigoEspacio) {
        this.codigoDocente = codigoDocente;
        this.codigoCarrera = codigoCarrera;
        this.codigoMateria = codigoMateria;
        this.nombreMateria = nombreMateria;
        this.codigoEspacio = codigoEspacio;
        grupos = new ArrayList<FiltroGrupo>();
        ArrayList<String> gs = GestorEspacioDB.getInstance().listarGruposEspacio(getUserBean().getCodigoCurso(), codigoCarrera, codigoMateria);
        for (String grupo : gs) {
            FiltroGrupo itemG = new FiltroGrupo(codigoDocente, codigoCarrera, codigoMateria, grupo);
            grupos.add(itemG);
        }
    }

    /**
     * @return the codigoDocente
     */
    public String getCodigoDocente() {
        return codigoDocente;
    }

    /**
     * @param codigoDocente the codigoDocente to set
     */
    public void setCodigoDocente(String codigoDocente) {
        this.codigoDocente = codigoDocente;
    }

    /**
     * @return the codigoCarrera
     */
    public String getCodigoCarrera() {
        return codigoCarrera;
    }

    /**
     * @param codigoCarrera the codigoCarrera to set
     */
    public void setCodigoCarrera(String codigoCarrera) {
        this.codigoCarrera = codigoCarrera;
    }

    /**
     * @return the codigoMateria
     */
    public String getCodigoMateria() {
        return codigoMateria;
    }

    /**
     * @param codigoMateria the codigoMateria to set
     */
    public void setCodigoMateria(String codigoMateria) {
        this.codigoMateria = codigoMateria;
    }

    /**
     * @return the mostrarGrupos
     */
    public boolean isMostrarGrupos() {
        return mostrarGrupos;
    }

    /**
     * @param mostrarGrupos the mostrarGrupos to set
     */
    public void setMostrarGrupos(boolean mostrarGrupos) {
        this.mostrarGrupos = mostrarGrupos;
    }

    /**
     * @return the grupos
     */
    public ArrayList<FiltroGrupo> getGrupos() {
        if(!codigoEspacio.equalsIgnoreCase(getUserBean().getCodigoCurso())) {
            grupos = new ArrayList<FiltroGrupo>();
            ArrayList<String> gs = GestorEspacioDB.getInstance().listarGruposEspacio(getUserBean().getCodigoCurso(), codigoCarrera, codigoMateria);
            for (String grupo : gs) {
                FiltroGrupo itemG = new FiltroGrupo(codigoDocente, codigoCarrera, codigoMateria, grupo);
                grupos.add(itemG);
            }
        }
        //JOptionPane.showMessageDialog(null,"en item materia entro  get grupos "+codigoDocente+" codiCArr "+codigoCarrera+" codiM "+codigoMateria+" size "+grupos.size());
        return grupos;
    }

    /**
     * @param grupos the grupos to set
     */
    public void setGrupos(ArrayList<FiltroGrupo> grupos) {
        this.grupos = grupos;
    }

    /**
     * @return the nombreMateria
     */
    public String getNombreMateria() {
        return nombreMateria;
    }

    /**
     * @param nombreMateria the nombreMateria to set
     */
    public void setNombreMateria(String nombreMateria) {
        this.nombreMateria = nombreMateria;
    }
    public void actionMostrarGrupo(ActionEvent event) {

        mostrarGrupos = true;
       //JOptionPane.showMessageDialog(null, "entro al evento en item materia "+mostrarGrupos);
    }
    public void actionNoMostrarGrupo(ActionEvent event) {
        mostrarGrupos = false;
    }
    public UserBean getUserBean() {
        FacesContext context = FacesContext.getCurrentInstance();
        VariableResolver vr = context.getApplication().getVariableResolver();
        return (UserBean)vr.resolveVariable(context, "userBean");
    }
}
